package com.lrkj.payfee.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.lrkj.common.annotation.Excel;
import com.lrkj.common.core.domain.BaseEntity;
import com.lrkj.payfee.domain.ChargeTime;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;


@Data
public class NormChargeVo extends BaseEntity {

    //房屋收费标准ID
    private String roomNormId;

    //小区ID
    private String communityId;

    /**
     * 费用类型
     */
    private String projectId;

    /**
     * 收费项目
     */
    private String chargeId;

    /**
     * 收费标准
     */
    private String normId;

    /**
     * 房屋id
     */
    private String roomId;

    /** 楼栋ID */
    private String floorId;

    /** 单元ID */
    private String unitId;

    /**
     * 指定金额
     */
    private BigDecimal amountSpecified;

    /**
     * 违约金计算方式
     */
    private String penaltyType;

    /**
     * 开始收费时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date beginChargeTime;

    /**
     * 结束收费时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date finishChargetime;


    /**
     * 下一次计费开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date nextBeginChargeTime;

    /**
     * 下一次计费结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date nextFinishChargetime;

    /***第一次费用生成结束日期***/
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date firstFinishTime;

    //应收日期
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date receivableTime;

    //状态
    private String status;

    //交讫年月
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date deliveryTime;

    //房屋收费标准 祖父ID
    private String ancestors;
    //机构ID
    private String deptId;

    //收费标准代码
    private String normCode;
    //收费标准名称
    private String normNames;
    //计费单价
    private BigDecimal prices;
    //计费方式
    private String computingFormula;
    //自定义公式
    private String formula;
    //业主ID
    private String ownerId;

    //小区编号
    private String communityNum;

    //业主名称
    private String customName;

    //房屋名称
    private String roomName;

    //收费项目名称
    private String chargeName;

    /** 使用面积 */
    private BigDecimal roomArea;

    //建筑面积
    private BigDecimal buildArea;

    //收费时间ID
    private String chartimId;

    //收费时间
    private ChargeTime chargeTime;

    //结账期间
    private String fiscalPeriod;

    //收费IDS
    private String[] roomNormIds;

    private String fiscalType;

    //费用生成方式
    private String chargeGenerateType;

}
